package com.itcam.lease.common.minio;

import io.minio.MinioClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration // 表明这是一个配置类
@EnableConfigurationProperties(MinioProperties.class) // 启用 MinioProperties 配置属性
public class MinioConfiguration {

    @Autowired // 自动注入 MinioProperties
    private MinioProperties properties;

    /**
     * 创建 Minio 客户端 bean
     *
     * @return Minio 客户端实例
     */
    @Bean // 声明这是一个 bean 方法
    public MinioClient minioClient() {
        // 使用 MinioProperties 中的配置构建 Minio 客户端
        return MinioClient.builder().endpoint(properties.getEndpoint()).credentials(properties.getAccessKey(), properties.getSecretKey()).build();
    }
}
